﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Interactivity;
using NicoView.Speech;
using NicoView.Model.Service.Broadcast;
using NicoView.ViewModel;

namespace NicoView.View.Behaviors
{
    //
    // Action のターゲット要素をその親以外にしたい場合、クラスを
    // TriggerAction の代わりに TargetedTriggerAction から拡張します
    //
    public class BroadcastTagBottomAction : TriggerAction<DependencyObject>
    {
        public BroadcastTagBottomAction()
        {

        }



        protected override void Invoke(object msg)
        {

            var vm = (NicoViewBroadcastControllerViewModel)((DependencyPropertyChangedEventArgs)msg).NewValue;
            if (vm == null)
            {
                return;
            }
            if (vm.Tags.Count <= 0)
            {
                vm.AddTag();

            }
            else
            {
                var addTag = true;
                foreach (var tag in vm.Tags)
                {
                    if (!tag.IsEnabled())
                    {
                        addTag = false;
                    }
                }

                if (addTag)
                {
                    vm.AddTag();
                }
                
            }

            // Action がトリガー/呼び出された時に行う操作を定義するコードを挿入します。
        }
    }
}